package se.webbzon.boltzmann.camera;

import java.util.Collection;

import se.webbzon.oschi01.worldcamera.WorldView;

public interface Camera {

	/** Returns the rotation around the x-axis. **/
	public double getRotationX();

	/** Returns the rotation around the y-axis. **/
	public double getRotationY();

	/** Returns the rotation around the z-axis. **/
	public double getRotationZ();

	/** Returns the distance between the camera and the target. **/
	public double getDistance();

	/** Adds the provided view to this camera. **/
	public boolean addView(WorldView view);

	/** Removed the given view from this camera. **/
	public boolean removeView(WorldView view);

	/** Removes all the views from this camera. **/
	public void clearViews();

	/** Returns a synchronized and unmodifiable collection of all the
	 * views to this camera. **/
	public Collection<WorldView> getViews();

}